//package com.lyb.springbootredisclient.listener;
//
//import com.github.shyiko.mysql.binlog.BinaryLogClient;
//import com.github.shyiko.mysql.binlog.event.*;
//
//import java.io.IOException;
//import java.io.Serializable;
//import java.util.Map;
//
///**
// * @author: lyb  2023/3/16 00:40
// */
//public class NotificationListener {
//    public static void main(String[] args) {
//        BinaryLogClient client = new BinaryLogClient("127.0.0.1", 3306, "root", "root");
//        client.setServerId(2);
//        client.registerEventListener(event ->
//        {
//            EventData data = event.getData();
//            if (data instanceof TableMapEventData) {
//                System.out.println("Table:");
//                TableMapEventData tableMapEventData = (TableMapEventData) data;
//                System.out.println(tableMapEventData.getTableId() + ": [库：" + tableMapEventData.getDatabase() + "表：" + tableMapEventData.getTable() + "]");
//            }
//            if (data instanceof UpdateRowsEventData) {
//                UpdateRowsEventData updateRowsEventData = (UpdateRowsEventData) data;
//                for (Map.Entry<Serializable[], Serializable[]> row : updateRowsEventData.getRows()) {
//                    Serializable[] value = row.getValue();
//                    if (value.length > 0) {
//                        Serializable serializable = value[0];
//                        if (serializable instanceof Long) {
//                            Long l = (Long) serializable;
//                            // 提取主键，通过MQ的消费端批量查询出来，把数据同步到redis,ES
//                            System.out.println("主键：" + l);
//                        }
//                    }
//                }
//            } else if (data instanceof WriteRowsEventData) {
//                System.out.println("Insert:");
//                System.out.println(data.toString());
//            } else if (data instanceof DeleteRowsEventData) {
//                System.out.println("Delete:");
//                System.out.println(data.toString());
//            }
//        });
//        try {
//            client.connect();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//
//
//    }
//}
